package features.advance.leetcode.string.easy;

/**
 *  面试题 01.03. URL化
 *
 *  难度：简单
 *
 * URL化。编写一种方法，将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符，并且知道字符串的“真实”长度。（注：用Java实现的话，请使用字符数组实现，以便直接在数组上操作。）
 *
 *
 *
 * 示例 1：
 *
 * 输入："Mr John Smith    ", 13
 * 输出："Mr%20John%20Smith"
 * 示例 2：
 *
 * 输入："               ", 5
 * 输出："%20%20%20%20%20"
 *
 *
 * 提示：
 *
 * 字符串长度在 [0, 500000] 范围内。
 *
 * @author LIN
 * @date 2021-09-13
 */
public class Interview01_03 {

    public static void main(String[] args) {
        Solution solution = new Solution() {
        };
        String S = "MR John Smith    ";
        int length = 13;
        String res = solution.replaceSpaces(S, length);
        System.out.println(res);

    }

    static class Solution {
        public String replaceSpaces(String S, int length) {
            //先把字符串转化为字符数组
            char[] chars = S.toCharArray();
            int index = chars.length - 1;
            for (int i = length - 1; i >= 0; i--) {
                // index >= i 恒成立
                //如果遇到空格就把他转化为"%20"
                if (chars[i] == ' ') {
                    chars[index--] = '0';
                    chars[index--] = '2';
                    chars[index--] = '%';
                } else {
                    chars[index--] = chars[i];
                }
            }
            return new String(chars, index + 1, chars.length - index - 1);
        }

    }
}
